package Clases;

import java.util.ArrayList;
import java.util.List;

public class Orden {
	private String id;
	private String fechaAlta;
	private String fechaEstimada;
	private Producto producto;
	private Integer cantidad;
	private String descripcion;
	private String estado;
	private List<Paso> pasos;
	
	public static final String ESTADO_NUEVA = "Nueva";
	public static final String ESTADO_ASIGNADA = "Asignada";
	public static final String ESTADO_EN_EJECUCION = "En_Ejecucion";
	public static final String ESTADO_CUMPLIDA = "Cumplida";
	
	public String getFechaEstimada() {
		return fechaEstimada;
	}
	
	public void setFechaEstimada(String fechaEstimada) {
		this.fechaEstimada = fechaEstimada;
	}
	
	public Producto getProducto() {
		return producto;
	}

	public void setProducto(Producto producto) {
		this.producto = producto;
	}
	
	public Integer getCantidad() {
		return cantidad;
	}
	
	public void setCantidad(Integer cantidad) {
		this.cantidad = cantidad;
	}
	
	public String getDescripcion() {
		return descripcion;
	}
	
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	public String getID() {
		return id;
	}
	
	public void setID(String id) {
		this.id = id;
	}	
	
	public String getFechaAlta() {
		return fechaAlta;
	}
	
	public String getEstado() {
		return estado;
	}
	
	public List<Paso> getPasos() {
		return pasos;
	}

	public void setFechaAlta(String fechaAlta) {
		this.fechaAlta = fechaAlta;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public void setPasos(List<Paso> pasos) {
		this.pasos = pasos;
	}

	public void calcularEstado() {
		int contFinalizadas = 0;
		for (int i = 0; i < this.pasos.size(); i++) {
			if (this.pasos.get(i).getEstado().equals(Paso.ESTADO_INICIADO)) {
				this.setEstado(Orden.ESTADO_EN_EJECUCION);
			}
			
			if (this.pasos.get(i).getEstado().equals(Paso.ESTADO_FINALIZADO)) {
				contFinalizadas++;
			}
		}
		
		if (contFinalizadas == this.pasos.size()) {
			this.setEstado(Orden.ESTADO_CUMPLIDA);
		}
	}
	
	public Orden() {
		super();
		this.pasos = new ArrayList<Paso>();
	}
}
